package org.jeecg.modules.flow.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.Date;
import java.util.Map;

/**
 * 流程
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "流程实例Vo对象")
public class ProInstanceVo implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("流程执行ID")
    private String id;

    @ApiModelProperty("流程实例ID")
    private String processInstanceId;
    /**
     * The id of the process definition of the process instance.
     */
    @ApiModelProperty("流程定义ID")
    private String processDefinitionId;

    /**
     * The name of the process definition of the process instance.
     */
    @ApiModelProperty("流程定义名称")
    String processDefinitionName;

    /**
     * The key of the process definition of the process instance.
     */
    @ApiModelProperty("流程定义KEY")
    String processDefinitionKey;

    /**
     * The version of the process definition of the process instance.
     */
    @ApiModelProperty("流程版本")
    Integer processDefinitionVersion;

    /**
     * The deployment id of the process definition of the process instance.
     */
    @ApiModelProperty("流程部署Id")
    String deploymentId;

    /**
     * The business key of this process instance.
     */
    @ApiModelProperty("业务key")
    String businessKey;

    /**
     * 发起用户ID
     */
    @ApiModelProperty("流程发起用户Id")
    String userId;
    /**
     * 发起用户名称
     */
    @ApiModelProperty("流程发起用户名称")
    private String userName;

    /**
     * isSuspended
     */
    @ApiModelProperty("是否挂起")
    boolean isSuspended;

    /**
     * processVariables
     */
    @ApiModelProperty("流程变量")
    Map<String, Object> processVariables;

    /**
     * tenantId
     */
    @ApiModelProperty("租户ID")
    String tenantId;

    /**
     * 流程实例名称
     */
    @ApiModelProperty("实例名称")
    String name;

    /**
     * 流程实例的开始时间
     */
    @ApiModelProperty("实例启动时间")
    private Date startTime;

    /**
     * 是否结束
     */
    @ApiModelProperty("实例是否结束")
    private boolean isEnded;
}
